Connection oriented communications networks typically contain switches that receive incoming data in the form of Asynchronous Transfer Mode (ATM) cells or other traffic types (e.g., frame relay packets) that can be converted to ATM cells. A switch can be can be structured with a set of ingress line cards (ILCs) that receive data from a number of virtual connections (VCs) and convert it to a single internal format. Typically an ILC may service a million VCs. The switch also includes generic switching fabric to channel the incoming data to one or more of a set of egress line cards (ELCs) that send the data out through the network. The generic switching fabric links the ILCs and the ELCs. When a packet arrives at the ingress port it can be switched to any of the egress ports depending upon the data in the packet. The line card data ports may have different transmission bandwidths (e.g., Optical Carrier 192 (OC-192) having a speed of 10 gigabits per second (gbs)). A problem arises when the data from one or more ILCs is channeled to an ELC that lacks the capacity to output the data.
FIG. 1A depicts a block diagram of switch 100 having ILCs 101, 102, and 103, generic switching fabric 104, and ELCs 105, 106, and 107. The data from line cards 101, 102, and 103, each having an OC-192 transmission line with a bandwidth of 10 gbs, is being channeled to ELC 105 at capacity (i.e., each ILC is transmitting 10 gbs). Because ELC also has an OC-192 transmission line it can only output a third of the data. To handle this situation a quality of service (QoS) scheme is implemented in the switch. When there is data congestion within the switch the QoS determines the order in which line card data is sent.
The QoS implements a guaranteed bandwidth structure (GBS) to guarantee a particular ingress port a certain percentage of the transmission bandwidth of a particular egress port. FIG. 1B depicts a switch 120 providing guaranteed bandwidth. As shown in FIG. 1B, ILC 101 of switch 120 is guaranteed 30% of the transmission bandwidth of ELC 105, ILC 102 is guaranteed 50%, while ILC 103 is guaranteed 0%. This means, for example, that during congested flow no less than 30% of the transmission bandwidth of ELC 105 will be available for the data channeled from ILC 101. If ILC 101 does not require the bandwidth it will be allocated on a non-guaranteed basis. The allocations are modified whenever a connection is initiated.
If ELC 105 becomes congested the switch will maintain its guarantee to ILC 101 and ILC 102. For example, if ILC 101, ILC 102, and ILC 103 transmit at 30%, 50% and 20% of the bandwidth of ELC 105, respectively, then all the data is transmitted. If, however, ILC 101, ILC 102, and ILC 103 each transmit at 100% of the bandwidth of ELC 105, then data congestion appears at ELC 105. Switch fabric 104 then channels only the guaranteed data (i.e., 30% from ILC 101 and 50% from ILC 102). When the congestion is dissipated, switch fabric 104 resumes unrestricted channeling.
The incoming data to the ILCs may also be categorized by class of service (CoS). Each class of service may have a guaranteed bandwidth within the guarantee of the ILC. Typically, the ILC connections may be differentiated into 128 classes of service. FIG. 1C depicts a switch 140 having classes of service A, B, and C within each of ILCs 101, 102, and 103. Classes may be selected by a user based on the type of data transmitted. For example, a constant bit rate (CBR) may be desired for voice communication. A variable bit rate (VBR) or unspecified bit rate (UBR) may suffice for other data types. The classes of service are used to determine transmission priority. The class of service designations and bandwidth guarantees are used to determine the network subscription cost.
As shown in FIG. 1C the class A data of ILC 101 is guaranteed 20% of the transmission bandwidth of ELC 105, class B data of ILC 101 is guaranteed 10%, and class C data has no guarantee. The transmission bandwidth of ELC 105 that is guaranteed to ILC 102 is similarly allocated to the classes of service. No bandwidth is guaranteed to any of the classes of ILC 103.
Generic switch fabric does not recognize the classes within the GBS. So, if class A data of ILC 101 is guaranteed 20%, class B data of ILC 101 is guaranteed 10%, and class C data of ILC has no guarantee, when only class C data is being transmitted through ILC 101 it will receive a 30% guarantee. In other words the generic switch fabric gives the guaranteed bandwidth to any classes of service from a particular line card without regard to the guarantee for the particular class. This leads to non-guaranteed data being treated unequally. For example if ILCs 101, 102, and 103 each transmit only class C data (i.e., no class A or B data) at 100% of the bandwidth of ELC 105, congestion will appear at ELC 105 and the generic switch fabric 104 will only channel the guaranteed data as described above. The transmission rate will drop to the total guaranteed rate until the congestion clears. However, the generic switch fabric 104 channels the data based on the total guarantee of all classes of service from each ILC, not the guarantee of the particular class of service being transmitted. Therefore, ILC 101 will be able to transmit class C data at 30% of the bandwidth of ELC 105, even though ILC 101 has a 0% guarantee for class C data. ILC 102 will be able to transmit class C data at 50% of the bandwidth of ELC 105, even though ILC 102 has a 15% guarantee for class C data. ILC 103 will not be able to transmit any class C data until the congestion dissipates. This system does not provide a fair allocation of the unused guaranteed bandwidth.